[日本語Alexa] SSMLの組み立てが超便利なssml-builderについて
0 リプレイスについて
Alexaは、昨年(2017年)11月に日本語対応となりました。ここDevelopers.IOでは、英語でしか利用できない頃から色々Blogに書いてきたのですが、更新された情報も含めて日本語で利用するAlexaについて纏め直してみたいと思います。
この記事は、下記の記事のリプレイス版です。
[Alexa] SSMLの組み立てが超便利なssml-builderについて
1 はじめに
Speech Synthesis Markup Language SSML(音声合成マークアップ言語 以下、SSML) とは、合成音声の作成を支援するためのXMLベースのマークアップ言語であり、発音、音量、ピッチ、速度などの読み上げに関する様々な制御が可能です。
ssml-builderは、このSSMLの組み立てを支援するパッケージです。
https://www.npmjs.com/package/ssml-builder
Amazon Alexa(以下、Alexa)でも、読み上げる出力にSSMLの指定が可能です。しかし、SSMLタグは、やや複雑で、多用すると混乱を招くことが避けられません。このため、ssml-builderのようなツールを利用することは、非常に有効だと思います。
ssml-builderは、Alexa SDKに対応しており、そのまま利用可能です。
参考:Alexa Skills Kit for Node.js はじめの一歩
2 インストールと基本的な利用方法
インストールは、npmで可能です。
npm install ssml-builder
基本的な利用方法は、以下のようになります。発生するテキストとSSMLのタグに相当するものを追加していき、最後にまとめてSSMLのテキストを得るとう形式です。
var Speech = require('ssml-builder'); var speech = new Speech(); speech.say('こんにちは。'); // 'こんにちはo'を追加 speech.pause('1s'); // breakタグを追加(1秒間隔を空ける) speech.say('ちょっと間を開けてみました。'); // 'ちょっと間を開けてみました。'を追加 var outputText = speech.ssml(true); // SSML出力を得る(trueを指定すると、前後の<speak>タグは省略されます) this.emit(':tell', outputText); // Alexa SDKによるレスポンス作成
上記で出力されるSSML以下の通りです。
<speak> こんにちは。 <break time='1s'/> ちょっと間を開けてみました。 </speak>
3 対応タグ
ssml-builderが対応しているタグは、以下のとおりですが、これは、Alexa Skill Kitのドキュメントに記載されているものそのものです。
参考:Speech Synthesis Markup Language (SSML) Reference
- amazon:effect
- audio (mp3の埋め込み)
- break (間隔を空ける)
- emphasis (強調)
- prosody (音量、ピッチ、レート)
- p (パラグラフ)
- s (センテンス)
- phoneme (発音記号の指定)
- speak (SSMLのルートタグ)
- sub (フレーズの区切り)
- say-as (読み方の指定)
- characters
- spell-out
- cardinal
- number
- ordinal
- digits
- fraction
- unit
- date
- time
- telephone
- address
- interjection
- expletive
- w (単語の属性指定)
- ivona:VB: Interpret the word as a verb (present simple).
- ivona:VBD: Interpret the word as a past participle.
- ivona:NN: Interpret the word as a noun.
- ivona:SENSE_1: for more information, see Amazon Documentation here
4 使用方法
ドキュメントに全ての例が紹介されています。
https://github.com/mandnyc/ssml-builder#tag-examples
以下の、その一部です。
Alexa Skill Kit のドキュメント と併せてみれば、ほとんど違和感なく利用できそうです。
5 最後に
今回は、SSMLを簡単に組み立てることができるライブラリ(ssml-builder)を紹介しました。このようなライブラリを活用し、煩雑となりがちなSSMLタグをうまく使いこなしたいと思います。
6 参考リンク
ssml-builder
https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs
Speech Synthesis Markup Language (SSML) Reference